(主要用于 C/C++ 编程)“reinterpret cast”(常见为 C++ 的 reinterpret_cast)指一种强制类型转换:在不改变底层比特位表示的前提下,把一个值/指针按另一种类型来解释。常用于底层操作(如指针、内存、硬件接口),但可移植性与安全性较弱,容易引发未定义行为;在 C++ 中属于较“危险”的转换之一。(在不同语境中也可泛指“重新诠释某个转换/投射”,但最常见是编程含义。)
/ˌriːɪnˈtɜːrprɪt kæst/
I used reinterpret_cast to convert the pointer to a byte pointer.
我用 reinterpret_cast 把这个指针转换成字节指针。
Because reinterpret_cast can break strict aliasing rules, the code may behave differently across compilers and platforms.
由于 reinterpret_cast 可能破坏严格别名(strict aliasing)规则,这段代码在不同编译器和平台上的表现可能不一致。
“reinterpret”由 re-(再次)+ interpret(解释)构成,意思是“重新解释”;“cast”在编程里常指“类型转换”。合在一起就强调:这种转换并非按数值意义“转换”,而是把同一段数据换一种类型视角来解读。在 C++ 语法中对应关键字形式 reinterpret_cast。